PHREEQCをゼロから始める #10:飽和指数(SI)の使いこなし — 鉱物は溶けているか、沈殿しているか

log(IAP/Ksp) で定義される飽和指数 SI を徹底解説。#2〜#9 の計算で毎回登場していた SI の正体を明かし、水質診断・スケール予測・鉱物平衡判定への応用を学ぶ。
Geochemistry
PHREEQC
作者

DeepFlow

公開

2026年5月6日

はじめに:#2 から毎回出ていたあの数字の正体

PHREEQC の出力を見るたびに、長い計算結果に「なんだこれは!!!」と思ったことに違いない。特に、下の英語と数字については、見て見ぬふりをしてきた。今回はこれについて見てみよう:

Phase SI log IAP log Ksp
Calcite 0.39 -7.83 -8.22
Dolomite 0.65 -16.65 -17.09
Gypsum -0.48 -5.28 -4.80
Kaolinite 2.64 -8.11 -8.11
Quartz 0.18 -3.88 -4.00
Pyrite -2.34 -30.44 -28.10

この SI(Saturation Index、飽和指数) こそが、PHREEQC の出力で最も頻繁に参照する数値である。 正確に読めると、その水が「どの鉱物を溶かしているか」「どの鉱物を沈殿させようとしているか」が 一目でわかる。

ノートこの記事で学ぶこと
  • SI の定義と IAP・Ksp の意味
  • SI > 0・SI = 0・SI < 0 が何を意味するかの直感的理解
  • 天然水の SI パターン読解(酸性雨・地下水・温泉水・海水)
  • PHREEQC コード で複数鉱物の SI を一括取得する方法
  • Kaolinite SI が高い値を示す理由と地球化学的意味
  • SI の不確かさ(測定誤差・温度補正)への注意点
  • 水処理・スケール予測・鉱物探査への応用

理論:SI の定義

イオン活量積(IAP)と溶解度積(Ksp)

鉱物の溶解平衡を例に取ろう。カルサイト(CaCO₃)の溶解反応は:

\[\text{CaCO}_3 \text{(s)} \rightleftharpoons \text{Ca}^{2+} + \text{CO}_3^{2-}\]

平衡定数(溶解度積)は:

\[K_{sp} = a_{\text{Ca}^{2+}} \cdot a_{\text{CO}_3^{2-}} = 10^{-8.48} \quad (25°C)\]

実際の溶液でのイオン活量積(IAP)は:

\[\text{IAP} = a_{\text{Ca}^{2+}}^{\text{実測}} \cdot a_{\text{CO}_3^{2-}}^{\text{実測}}\]

SI の定義

\[SI = \log_{10}\left(\frac{\text{IAP}}{K_{sp}}\right) = \log(\text{IAP}) - \log(K_{sp})\]

SI < 0
不飽和
IAP < Ksp
鉱物は溶解する
(もしあれば)
例:カルサイトが溶ける
酸性雨・軟水
SI = 0
飽和(平衡)
IAP = Ksp
溶解も沈殿もない
熱力学的平衡
例:Calcite 平衡
石灰岩地下水
SI > 0
過飽和
IAP > Ksp
鉱物は沈殿する
(核形成が起きれば)
例:スケール形成
温泉・地熱流体
重要SI は「今すぐ」の状態を示すわけではない

SI > 0 でも鉱物がすぐ沈殿するとは限らない。 核形成(nucleation) には活性化エネルギーが必要で、特に無機物の沈殿は数時間〜数年かかることがある(過飽和の持続)。 逆に SI < 0 でも溶解は瞬間的ではなく、反応速度(kinetics)に依存する。 SI はあくまで 熱力学的な駆動力の方向 を示すものだと思ってほしい。


図解:SI の概念

飽和指数SIの概念図:ダムと水位のアナロジー Ksp SI < 0 不飽和 IAP < Ksp → 鉱物が溶解 空き スペース IAP Ksp SI = 0 平衡 IAP = Ksp → 変化なし IAP Ksp SI > 0 過飽和 IAP > Ksp → 鉱物が沈殿 IAP

図1. 飽和指数の概念図 — 水位(IAP)と堤防(Ksp)のアナロジー


カルサイトの SI を手計算してみる

理論の確認として、海水の SI(Calcite) を手で計算してみよう。

# 海水(25°C)でのカルサイト SI 計算

# #9 より、γ(Ca²⁺) = 0.28 in seawater
m(Ca²⁺) = 0.0103 mol/kg
a(Ca²⁺) = 0.28 × 0.0103 = 0.00288

# CO₃²⁻ の活量(PHREEQC 出力より)
a(CO₃²⁻) = 2.37×10⁻⁵ (pH 8.22, Alk 2.3 mM)

IAP = a(Ca²⁺) × a(CO₃²⁻)
= 0.00288 × 2.37×10⁻⁵
= 6.83×10⁻⁸

log IAP = log(6.83×10⁻⁸) = -7.17
log Ksp (Calcite, 25°C) = -8.48

SI = -7.17 - (-8.48) = +0.72 ← PHREEQC 実測値 +0.721 と一致

つまり海水は熱力学的にはカルサイトを沈殿させるべき状態にある。 しかし、実際に沈殿しないのは 核形成の活性化エネルギー と Mg²⁺ による阻害効果が働くからである。


PHREEQCコード(完全版)

設定:5 種類の天然水での多鉱物 SI 一括計算

ノートSOLUTION 設定の注意点

Calcite・Kaolinite の SI を正しく計算するには、すべての溶液に Al と Fe を必ず定義 する必要がある。
これらが未定義(= 濃度ゼロ)の場合、PHREEQCは IAP を計算できず SI = −999.999(計算不能)を返す。
また、炭酸系(Calcite)は C(4) または Alkalinity の定義が必須である。

# ============================================================
#  DeepFlow #10 - 飽和指数(SI)一括計算
#  5 種類の天然水 × Calcite・Quartz・Kaolinite・Goethite
# ============================================================

SOLUTION 1  "酸性雨"
    temp      15
    pH        4.5
    pe        12
    units     mol/kgw
    S(6)      1e-6
    N(5)      5e-6
    Ca        2e-6        # 大気由来の微量Ca
    C(4)      1e-5        # 大気CO₂由来(pCO2 ≈ 400ppm 相当)
    Si        1e-5        # 大気由来の微量Si
    Al        1e-7        # 風化開始前の微量Al
    Fe(2)     1e-7
    Fe(3)     1e-10

SOLUTION 2  "石灰岩地下水"
    temp      12
    pH        7.4
    pe        4
    units     mol/kgw
    Ca        2.1e-3
    Mg        0.8e-3
    Na        0.5e-3
    K         0.1e-3
    Cl        0.4e-3
    Alkalinity 5.2e-3 as HCO3
    S(6)      0.3e-3
    Si        0.1e-3
    Al        1e-7
    Fe(2)     1e-7
    Fe(3)     1e-10

SOLUTION 3  "花崗岩地下水"
    temp      10
    pH        6.2
    pe        6
    units     mol/kgw
    Ca        0.4e-3
    Mg        0.1e-3
    Na        1.2e-3
    K         0.3e-3
    Cl        0.8e-3
    Alkalinity 1.5e-3 as HCO3
    Si        0.3e-3
    Al        2e-6        # 長石風化由来(花崗岩地下水の典型値)
    S(6)      1e-5
    Fe(2)     1e-7
    Fe(3)     1e-10

SOLUTION 4  "炭酸温泉水"
    temp      50
    pH        6.8
    pe        2
    units     mol/kgw
    Ca        5.0e-3
    Mg        1.0e-3
    Na        8.0e-3
    K         0.5e-3
    Cl        2.0e-3
    Alkalinity 12.0e-3 as HCO3
    S(6)      1.0e-3
    Fe(2)     0.5e-3
    Si        1.0e-3
    Al        5e-7

SOLUTION 5  "海水"
    temp      25
    pH        8.22
    pe        8.451
    units     mol/kgw
    Na        0.4689
    Mg        0.0528
    Ca        0.0103
    K         0.0102
    Cl        0.5453
    Alkalinity 2.3e-3 as HCO3
    S(6)      0.0283
    Si        1.0e-4
    Al        1e-8
    Fe(2)     1e-8
    Fe(3)     1e-10

# -------- SI 計算・出力 --------

SELECTED_OUTPUT 1
    -file              si_comparison.txt
    -solution          true
    -pH                true
    -temperature       true
    -ionic_strength    true
    -saturation_indices  Calcite  Quartz  Chalcedony  Kaolinite  Goethite

USER_PUNCH 1
    -headings  Solution  Temp  pH  Ionic_Strength  SI_Calcite  SI_Quartz  SI_Chalcedony  SI_Kaolinite  SI_Goethite
    -start
    10 PUNCH DESCRIPTION, TEMP, -LA("H+"), MU, \
             SI("Calcite"), SI("Quartz"), SI("Chalcedony"), SI("Kaolinite"), SI("Goethite")
    -end

USE solution 1
END
USE solution 2
END
USE solution 3
END
USE solution 4
END
USE solution 5
END

計算結果と読み方

下表はすべて上記コードを実際に実行した結果である。

溶液 pH SI
Calcite
SI
Quartz
SI
Kaolinite
診断
酸性雨 4.5 −10.13 −0.87 −5.52 全鉱物を強く溶かす
炭酸塩・カオリナイト共に不飽和
石灰岩地下水 7.4 +0.15 +0.18 +2.64 Calcite・Quartz は平衡付近
Kaolinite は強過飽和
花崗岩地下水 6.2 −2.23 +0.69 +6.96 炭酸塩不飽和、石英は過飽和
Kaolinite は極端な過飽和(※下記参照)
炭酸温泉水 6.8 +0.65 +0.64 +2.76 Calcite・Quartz 共に過飽和
スケール注意域(SI > 0.5)
海水 8.22 +0.72 +0.04 −2.77 Calcite 過飽和・Quartz ほぼ平衡
Kaolinite は不飽和(高イオン強度の影響)

Kaolinite の SI が極端に高い理由

花崗岩地下水で SI(Kaolinite) = +6.96 という高い値が気になる。これは計算ミスではなく、地球化学的に意味のある値であると思う。

重要Kaolinite の溶解反応と SI

カオリナイトの溶解反応は次のように書ける:

\[\text{Al}_2\text{Si}_2\text{O}_5(\text{OH})_4 + 6\text{H}^+ \rightleftharpoons 2\text{Al}^{3+} + 2\text{H}_4\text{SiO}_4 + \text{H}_2\text{O}\]

この反応の log K(Ksp に相当)は約 −7.4(phreeqc.dat)。
IAP は Al³⁺・Si・H⁺ の活量によって決まり、特にH⁺活量(pH)の寄与が支配的であるため、pH 6.2 の条件では Al が 2 μmol/L(= 2e-6)程度存在するだけでも IAP は非常に大きくなる

SI = +7 程度の過飽和は、花崗岩地域の風化フロントではむしろ自然な結果で、
「長石からカオリナイトへの変質が熱力学的に強く駆動されている状態」を意味する。
実際の野外では Kaolinite は長石の溶解に伴ってその表面で形成され、結果として置換的に生成する。すなわち、カオリナイトは熱力学的には生成しやすいが、反応全体は主に長石の溶解速度や核形成過程によって制約されるため、極めてゆっくり形成される鉱物である。


応用 1:スケール(カルサイト沈殿)予測

温泉や地熱発電では、温水が冷えるにつれて SI が変化してスケール(垢)が形成される可能性がある。 炭酸温泉水(今回の計算)では湧出時(50°C)で SI(Calcite) = +0.72 と既に過飽和域にある。 この計算は phreeqpy(Python バインディング)で実行した。

import os
import pandas as pd
from phreeqpy.iphreeqc.phreeqc_dll import IPhreeqc
import matplotlib.pyplot as plt

def run_scale_prediction():
    current_dir = os.path.dirname(os.path.abspath(__file__))
    db_path = os.path.join(current_dir, "phreeqc.dat")

    phreeqc = IPhreeqc()
    phreeqc.load_database(db_path)

    input_script = """
    SOLUTION 1  "炭酸温泉(湧出)"
        temp      50
        pH        6.8
        units     mol/kgw
        Ca        5.0e-3
        Mg        1.0e-3
        Na        8.0e-3
        K         0.5e-3
        Cl        2.0e-3
        Alkalinity 12.0e-3 as HCO3
        S(6)      1.0e-3
        Fe(2)     0.5e-3
        Si        1.0e-3
        Al        5e-7

    REACTION_TEMPERATURE 1
        50 30 15

    SELECTED_OUTPUT 1
        -reset         false
        -temperature   true
        -ph            true
        -si            Calcite Aragonite
    """

    phreeqc.run_string(input_script)
    output = phreeqc.get_selected_output_array()

    if output:
        return pd.DataFrame(output[1:], columns=output[0])
    return "No results."

if __name__ == "__main__":
    results = run_scale_prediction()
    print(results)

    plt.figure(figsize=(8, 5))
    plt.plot(results['temp(C)'], results['si_Calcite'],   marker='o', label='Calcite')
    plt.plot(results['temp(C)'], results['si_Aragonite'], marker='s', label='Aragonite')
    plt.axhline(0, color='red', linestyle='--', alpha=0.5)
    plt.title("Temperature vs Saturation Index (SI)")
    plt.xlabel("Temperature (°C)")
    plt.ylabel("Saturation Index (SI)")
    plt.gca().invert_xaxis()
    plt.legend()
    plt.grid(True)
    plt.show()
ノートphreeqpy のインストール
pip install phreeqpy

phreeqc.dat はスクリプトと同じフォルダに置くこと。
Windows の場合は phreeqc.dat のパスに日本語・スペースが含まれないよう注意。

温度低下とSI(Calcite)の変化グラフ(実測値) SI=0 50 30 15 温度 (°C) +0.9 +0.6 +0.3 0.0 SI (Calcite) スケール危険域(SI > 0) 0.72 0.47 0.34 SI(Calcite) SI(Aragonite)

図2. 炭酸温泉水の温度低下に伴う SI(Calcite) の変化(Python / phreeqpy 実行結果)— 全温度域で過飽和を維持しながら、冷えるにつれて SI は低下する

重要なぜ温度が下がると SI が下がるのか — C(4) 過剰の影響

カルサイトは一般に 逆行性(retrograde solubility) を示し、温度が下がると溶けにくくなる。
しかし今回の Python コードでは、初期の Alkalinity 12 mmol/L だけを炭酸源とし、C(4) の過剰追加を行っていない

この条件では温度低下に伴って CO₂ 溶解度が上がり(Henry 則)、溶液中の H₂CO₃* が増加して
\(\text{CO}_3^{2-}\) が一部 \(\text{HCO}_3^-\) 側(会合側)へシフトし \(\text{CO}_3^{2-}\) が減少する。
その結果 IAP が減少し、SI は温度とともに低下する(正行性に近い挙動)。

逆行性が現れるのは pCO₂ を固定した開放系(例:大気と平衡な湧出口)や
炭酸濃度が十分に高い閉鎖系で顕著になる。
実際の温泉スケール診断では、現場の pCO₂ 条件を正確に把握することが重要になる。


応用 2:水質タイプの診断 — SI パターンで岩石を読む

SI パターンを読むと、水がどの岩石と平衡を保って流れてきたかがわかる:

🏔️ 石灰岩地域の地下水
SI(Calcite) = +0.15(平衡付近)
SI(Quartz) = +0.18(平衡付近)
SI(Kaolinite) = +2.64(過飽和)

Ca–HCO₃ 型水質。カルサイトと平衡に近く、 滞留時間が長いほど SI(Calcite) ≈ 0 に近づく。 Kaolinite 過飽和は長石の粘土化が進んでいることを示す。
🪨 花崗岩地域の地下水
SI(Calcite) = −2.23(強い不飽和)
SI(Quartz) = +0.69(過飽和)
SI(Kaolinite) = +6.96(極端な過飽和)

Na–HCO₃ 型。長石の風化で Na・Si・Al が供給。 Kaolinite の高 SI は風化が強く駆動されているサインで、 実際に長石表面の粘土化が進行中と判断できる。
♨️ 炭酸温泉水
SI(Calcite) = +0.65(過飽和・スケール注意)
SI(Quartz) = +0.64(過飽和)
SI(Kaolinite) = +2.76(強過飽和)

高 Alkalinity(12 mmol/L)が炭酸塩過飽和の主因。 配管・熱交換器でのカルサイトスケール形成に注意。 この計算条件(閉鎖系・低 C(4))では温度低下で SI は低下するが、 全温度域で SI > 0 を維持するためスケールリスクは続く。
🌊 海水
SI(Calcite) = +0.72(過飽和)
SI(Quartz) = +0.04(ほぼ平衡)
SI(Kaolinite) = −2.77(不飽和)

炭酸塩は過飽和だが生物活動なしには沈殿しにくい。 高イオン強度(μ ≈ 0.65)のため Al 活量が抑制され、 Kaolinite は不飽和となる。

SI の不確かさ:測定誤差をどう扱うか

ノートSI ≈ 0 の判断幅

現場測定の pH 誤差 ±0.1 は、SI に約 ±0.1 の不確かさをもたらす。 温度誤差 ±2°C は炭酸系で SI ±0.1〜0.2 に相当する。 したがって、|SI| < 0.2 は「実質的に平衡」 と解釈するのが現実的である。

下記の表にSIの判断幅についてまとめた。

SI の範囲 地球化学的意味 実用的判断
SI < −1 強く不飽和 — 溶解駆動力が大きい 炭酸塩では急速溶解/ケイ酸塩では速度制約あり
−1 ≤ SI < −0.2 不飽和 — 緩やかな溶解 スケールなし、長期的に鉱物消耗
−0.2 ≤ SI ≤ +0.2 概ね平衡 — 測定・温度誤差の範囲 その鉱物が系を支配している可能性
+0.2 < SI ≤ +1 軽度の過飽和 — 沈殿の可能性 炭酸塩では析出開始/ケイ酸塩では限定的
SI > +1 強い過飽和 — 熱力学的に沈殿有利 炭酸塩ではスケール形成/ケイ酸塩では核形成・速度制約により必ずしも沈殿しない

※ SI は熱力学的駆動力を示す指標であり、実際の沈殿・溶解速度は鉱物種および反応速度論に強く依存する。下表に主な誤差源を示す。

誤差源 典型的誤差 SI への影響 対策
pH 測定 ±0.05–0.1 ±0.05–0.1 現場測定・温度補正
温度測定 ±1–2°C ±0.1–0.2 採水時に正確に記録
アルカリ度分析 ±2–5% ±0.02–0.05 速やかに滴定
Ca²⁺ 分析 ±2–5% ±0.02–0.05 ICP-OES 推奨
熱力学データベース ±0.05–0.2 ±0.05–0.2 llnl.dat vs phreeqc.dat の比較

まとめ:SI はシリーズ全体の「ものさし」だった

PHREEQCシリーズ全体とSIの関係まとめ #2 海水 Speciation #3 石膏 温度依存性 #6 黄鉄鉱 AMD #7 Gibbsite 溶解度図 #9 活量 係数 #10 SI ← 今回 SI = log(IAP / Ksp) すべての平衡計算の「ものさし」 次回 #11 — 反応経路モデリング(REACTION block の応用)
ヒント次回 #11「反応経路モデリング — 鉱物が溶け続けたら何が起こるか」

REACTION ブロックで岩石片を少しずつ溶かしながら、 pH・SI・化学種濃度がどう変化するかを追う。 「雨水が石灰岩に接触してから地下水になるまで」のシミュレーションである。 #3〜#10 で積み上げた知識がすべて統合される記事になる。


参考文献(References)

Appelo, CAJ, と Dieke Postma. 2005年. Geochemistry, groundwater and pollution. Second. Balkema, Rotterdam, p. 634.
Parkhurst, David L, と CAJ Appelo. 2013年. Description of input and examples for PHREEQC version 3—A computer program for speciation, batch-reaction, one-dimensional transport, and inverse geochemical calculations. US Geological Survey Techniques; Methods, book 6, chap. A43, 497 p.
Yamamoto, S. 1983年. Method of the groundwater survey. Kokon Shoin, Tokyo (in Japanese), 490 p.
Yang, Heejun, T Mishima, S Katazakai, と M Kagabu. 2023年. 「Analytical approach using a chemical equilibrium formula and geochemical modeling for alkalinity measurements of small natural water samples」. Applied Geochemistry 148: 105535.

DeepFlow | 地球科学シミュレーションの深みへ